package com.schoolCommunity.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RoundRobinRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean {  //@Configuration  -- spring applicationContext.xml

    //添加注解RestTemplate  负载均衡
    @Bean
    @LoadBalanced  //riddon
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

    //Irule
    //RoundRobinRule 轮询
    //RandomRule 随机
    //AvailabilityFilteringRule: 先过滤掉，跳闸访问故障的服务，对剩下的进行轮询
    //RetryRule: 先按照轮询获取服务，如果服务获取失败，在指定的时间内进行重试
    //注册轮询
//    @Bean
//    public IRule myIRule(){
//        return new RandomRule(); //例如这是随机
//    }

    @Bean
    public IRule myIRule() {
        return new RoundRobinRule(); //例如这是轮询
    }

}
